import pandas as pd
from openpyxl import load_workbook
from openpyxl.drawing.image import Image
import os
def copy_to_picture(file_path, sheet_name, range_str, output_dir):
    try:
        # 加载 Excel 文件
        wb = load_workbook(file_path)
        # 获取指定工作表
        ws = wb[sheet_name]
        # 获取指定区域
        rng = ws[range_str]
        print("1")
        
        # 将单元格内容复制为图片
        img = rng.copy_format_only()
        
        # 创建新工作表并粘贴图片
        new_ws = wb.create_sheet("图片")
        new_ws.cell(row=1, column=1).value = img
        
        # 保存修改后的 Excel 文件
        wb.save(file_path)
        print("2")
        
        # 重命名并删除新创建的工作表
        wb.worksheets.remove(new_ws)
        print("3")
        # 将图片文件保存到指定路径
        output_path = os.path.join(output_dir, f"{sheet_name}_{range_str}.jpg")  # 请根据实际路径需求修改这部分代码
        img.export(output_path)  # 将图片导出到指定路径
        print("4")
        msg = "导出图片完成！"
        print(msg)
    finally:
        wb.close()  # 关闭工作簿
        print("5")
# 调用函数，将 A5:J20 区域的内容复制为图片，并保存到当前目录的 "图片" 文件夹中
copy_to_picture("ss.xlsx", "9.6", "A1:W13", r"C:\Users\Administrator\Desktop\向兵\项目\区域转图片")
